package com.storage.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 采购/订购 订单表 storage_procurement_order
 *
 * @author ruoyi
 * @date 2019-08-26
 */
@ApiModel(value = "采购/订购 订单对象")
public class StorageProcurementOrder implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 订单id
     */
    @ApiModelProperty(value = "订单id")
    private Long id;
    /**
     * 订单名称
     */
    @ApiModelProperty(value = "订单名称")
    private String orderTitle;
    /**
     * 订单编号
     */
    @ApiModelProperty(value = "订单编号")
    private String orderCode;
    /**
     * 订单总金额
     */
    @ApiModelProperty(value = "订单总金额")
    private BigDecimal orderTotalPrice;
    /**
     * 采购/订购订单状态(0-发起订单;1-被采购方接受订单;2-采购方接受订单;3-被采购方拒绝订单;4-采购方拒绝订单;5-订单确认成功)
     */
    @ApiModelProperty(value = "订单id")
    private Integer orderStatus;
    /**
     * 实际付款金额
     */
    @ApiModelProperty(value = "实际付款金额")
    private BigDecimal actualPaymentAmount;
    /**
     * 被采购方用户id
     */
    @ApiModelProperty(value = "被采购方用户id")
    private Long provideUserId;
    /**
     * 供货方级别(1-下级;2-上级)
     */
    @ApiModelProperty(value = "供货方级别(1-下级;2-上级)")
    private Integer provideUserLevel;
    /**
     * 采购/订购备注
     */
    @ApiModelProperty(value = "采购/订购备注")
    private String description;
    /**
     * 订单类型(0-产品订单;1-新品订单)
     */
    @ApiModelProperty(value = "订单类型(0-产品订单;1-新品订单)")
    private Integer orderType;
    /**
     * 订单详情
     */
    @ApiModelProperty(value = "订单详情")
    private String goodsContent;
    /**
     * 申请人类型:1-代理商;2-店铺
     */
    @ApiModelProperty(value = "申请人类型:1-代理商;2-店铺")
    private Integer applicationType;
    /**
     * 采购类型:1-采购;2-上级发货
     */
    @ApiModelProperty(value = "采购类型:1-采购;2-上级发货")
    private Integer procurementType;
    /**
     * 采购/订购申请人
     */
    @ApiModelProperty(value = "采购/订购申请人")
    private Long applicationUserId;
    /**
     * 采购/订购修改时间
     */
    @ApiModelProperty(value = "采购/订购修改时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date modifyTime;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 扩展属性 */
    /**
     * 产品列表
     */
    List<StorageProduct> products;
    private String provideUserName;

    /**
     * 店铺信息
     */
    private StorageShop shop;

    private Date startTime;
    private Date endTime;

    /**
     * 收款备注
     */
    private String remark;

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setOrderTitle(String orderTitle) {
        this.orderTitle = orderTitle;
    }

    public String getOrderTitle() {
        return orderTitle;
    }

    public void setOrderCode(String orderCode) {
        this.orderCode = orderCode;
    }

    public String getOrderCode() {
        return orderCode;
    }

    public void setOrderTotalPrice(BigDecimal orderTotalPrice) {
        this.orderTotalPrice = orderTotalPrice;
    }

    public BigDecimal getOrderTotalPrice() {
        return orderTotalPrice;
    }

    public void setOrderStatus(Integer orderStatus) {
        this.orderStatus = orderStatus;
    }

    public Integer getOrderStatus() {
        return orderStatus;
    }

    public void setActualPaymentAmount(BigDecimal actualPaymentAmount) {
        this.actualPaymentAmount = actualPaymentAmount;
    }

    public BigDecimal getActualPaymentAmount() {
        return actualPaymentAmount;
    }

    public void setProvideUserId(Long provideUserId) {
        this.provideUserId = provideUserId;
    }

    public Long getProvideUserId() {
        return provideUserId;
    }

    public void setProvideUserLevel(Integer provideUserLevel) {
        this.provideUserLevel = provideUserLevel;
    }

    public Integer getProvideUserLevel() {
        return provideUserLevel;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getDescription() {
        return description;
    }

    public void setOrderType(Integer orderType) {
        this.orderType = orderType;
    }

    public Integer getOrderType() {
        return orderType;
    }

    public void setGoodsContent(String goodsContent) {
        this.goodsContent = goodsContent;
    }

    public String getGoodsContent() {
        return goodsContent;
    }

    public void setApplicationUserId(Long applicationUserId) {
        this.applicationUserId = applicationUserId;
    }

    public Long getApplicationUserId() {
        return applicationUserId;
    }

    public void setModifyTime(Date modifyTime) {
        this.modifyTime = modifyTime;
    }

    public Date getModifyTime() {
        return modifyTime;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public List<StorageProduct> getProducts() {
        return products;
    }

    public void setProducts(List<StorageProduct> products) {
        this.products = products;
    }

    public String getProvideUserName() {
        return provideUserName;
    }

    public void setProvideUserName(String provideUserName) {
        this.provideUserName = provideUserName;
    }

    public Integer getApplicationType() {
        return applicationType;
    }

    public void setApplicationType(Integer applicationType) {
        this.applicationType = applicationType;
    }

    public Integer getProcurementType() {
        return procurementType;
    }

    public void setProcurementType(Integer procurementType) {
        this.procurementType = procurementType;
    }

    public StorageShop getShop() {
        return shop;
    }

    public void setShop(StorageShop shop) {
        this.shop = shop;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }
}
